package com.cq.hd.member.service;

import com.alibaba.fastjson.JSONObject;
import com.cq.hd.common.pagination.Page;
import com.cq.hd.member.api.dto.*;
import com.cq.hd.member.api.vo.*;
import com.cq.hd.member.po.TbMemberFeeConfigPo;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 会员套餐配置表 服务类
 * </p>
 *
 * @author mYunYu
 * @since 2023-12-05
 */
public interface TbMemberFeeConfigService extends IService<TbMemberFeeConfigPo> {

    Long saveMemberFeeConfig(MemberFeeConfigSaveDto memberFeeConfigSaveDto);

    Boolean updateMemberFeeConfig(MemberFeeConfigUpdateDto memberFeeConfigUpdateDto);

    Page<MemberFeeConfigPageVo> pageMemberFeeConfig(MemberFeeConfigPageDto memberFeeConfigPageDto);

    Page<AppMemberFeeConfigPageVo> pageAppMemberFeeConfig(AppMemberFeeConfigPageDto appMemberFeeConfigPageDto);

    String createAppMemberFeeConfigOrder(AppMemberFeeConfigCreateDto appMemberFeeConfigCreateDto);

    AppMemberFeeConfigPayVo payAppMemberFeeConfigOrder(AppMemberFeeConfigPayDto appMemberFeeConfigPayDto);

    Boolean jsPayCallback(JSONObject dataObj);

    Boolean queryOrderPay(AppMemberFeePayQueryDto appMemberFeePayQueryDto);

    Boolean giveMemberFee(MemberFeeGiveDto memberFeeGiveDto);

    Boolean changeRights(MemberFeeChangeDto memberFeeChangeDto);

    MemberFeeConfigPageVo detailById(Long id);

    BankPayRechargeVo bankPayAdminMemberFeeConfigOrder(AdminBusinessMemberFeePayDto adminBusinessMemberFeePayDto);

    BankPayQueryVo queryBankPayOrder(BankPayQueryDto bankPayQueryDto);

    Boolean bankPayCallback(JSONObject dataObj);
}
